#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

void OutPutString(string& Input, string& target_str) {
 vector<string> vec_str1;
 vector<string> vec_str2;
 vector<string> vec_str3;
 vector<string>::iterator vec_str;

 string test;
 string str;

 int i_ = 0;
 int j_ = 0;
 int k_ = 0;
 int n_ = 0;

 for (auto s : Input) {
  if(s == ',')
   i_++;
 }

 for (auto s : target_str) {
  if(s == ',')
   j_++;
 }

 for (int i = 0; i < Input.size(); i++) {
  if (Input[i] != ',') {
   test.push_back(Input[i]);
  }
  if (Input[i] == ',') {
   vec_str1.push_back(test);
   test.clear();
   i_--;
   continue;
  }
  if (i_ == 0) {
   k_++;
   if(k_ == 6) {
    vec_str1.push_back(test);
   }
  }
 }

 for (int i = 0; i < target_str.size(); i++) {
  if (target_str[i] != ',') {
   str.push_back(target_str[i]);
  }
  if (target_str[i] == ',') {
   vec_str2.push_back(str);
   str.clear();
   j_--;
   continue;
  }
  if (j_ == 0) {
   n_++;
   if (n_ == 3) {
    vec_str2.push_back(str);
   }
  }
 }

 for(int i = 0; i < vec_str1.size(); i++) {
  for(int k = 0; k < vec_str2.size();k++) {
   int n = vec_str1[i].find(vec_str2[k]);
   if (n != vec_str1[i].npos) {
    string accept_str;
    if (n == 0) {
     string test_str_ = vec_str1[i];
     for (int i = 3; i < test_str_.size();i++) {
      accept_str.push_back(test_str_[i]);
     }
     vec_str3.push_back(accept_str);
    }
   }
  }
 }
 for (int i = 0; i < vec_str3.size(); i++) {
  std::cout << vec_str3[i];
  if (vec_str3.size() - 1 > i) 
   std::cout << ",";
 }
  cout << endl;
}

int main() {
 string ss = "a1-a2,a5-a6,a2-a3,a6-a8";
 string sss = "a5,a2,a6";
 OutPutString(ss,sss);
 return 0;
}

